package org.cskt.sl.ebank.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.cskt.sl.ebank.entity.CommonExample;
import org.cskt.sl.ebank.entity.ConsumeAccount;
import org.cskt.sl.ebank.entity.ConsumeAccountExample;

/**
 * 消费记录 mapper
 * @author guddqs
 *
 */
public interface ConsumeAccountMapper {
	
	/**
	 * 根据条件统计 消费账户消费记录行数
	 * @param example 条件对象
	 * @return 影响行数
	 */
    int countByExample(CommonExample example);

    /**
     * 根据 条件 批量删除 消费账户消费记录
     * @param example
     * @return 影响行数
     */
    int deleteByExample(ConsumeAccountExample example);

    /**
     * 根据主键 删除 消费账户消费记录
     * @param baid
     * @return 影响行数
     */
    int deleteByPrimaryKey(Integer caid);

    /**
     * 插入一条基本用户消费账户消费记录(完全插入)
     * @param record  消费账户消费记录对象
     * @return 影响行数
     */
    int insert(ConsumeAccount record);

    /**
     * 插入一条基本用户消费账户消费记录(根据非空动态插入)
     * @param record 消费账户记录对象
     * @return 影响行数
     */
    int insertSelective(ConsumeAccount record);

    /**
     * 根据条件和分页参数 查询 消费账户消费记录结果集
     * @param example 条件对象
     * @param firstResult 开始行数
     * @param maxResult 单页总条数
     * @return 分页后的 消费账户消费记录 结果集
     */
    List<ConsumeAccount> selectByExample(@Param("example")CommonExample example,@Param("first")int firstResult, @Param("max")int maxResult);

    /**
     * 根据 主键 获取单条消费记录详情
     * @param baid
     * @return 消费账户消费记录对象
     */
    ConsumeAccount selectByPrimaryKey(Integer caid);

    /**
     * 根据 条件 批量修改 消费账户消费记录(根据记录字段非空动态更新)
     * @param record 消费账户消费记录对象
     * @param example 条件对象
     * @return 影响行数
     */
    int updateByExampleSelective(@Param("record") ConsumeAccount record, @Param("example") ConsumeAccountExample example);

    /**
     * 根据 条件 批量修改 消费账户消费记录(完全更新)
     * @param record 消费账户消费记录对象
     * @param example 条件对象
     * @return 影响行数去 
     */
    int updateByExample(@Param("record") ConsumeAccount record, @Param("example") ConsumeAccountExample example);

    /**
     * 根据 主键 修改 消费账户消费记录(根据记录字段非空动态更新)
     * @param record 消费账户消费记录对象
     * @return
     */
    int updateByPrimaryKeySelective(ConsumeAccount record);

    /**
     * 根据 主键 修改 消费账户消费记录(完全更新)
     * @param record 消费账户消费记录对象
     * @return
     */
    int updateByPrimaryKey(ConsumeAccount record);
}